package cn.xopencode.securityservice.rpc.danger.dto;

import cn.xopencode.common.framework.validator.InEnum;
import cn.xopencode.securityservice.enums.activity.ActivityRankingEnum;
import cn.xopencode.securityservice.enums.activity.ActivityTypeEnum;
import cn.xopencode.securityservice.enums.activity.ParticipatingRoleEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

/**
 * 安全活动与技能比武情况 Request DTO
 */
@Data
@Accessors(chain = true)
public class ActivityCreateReqDTO implements Serializable {

    /**
     * 活动时间
     */
    @NotNull(message = "活动时间不能为空")
    @ApiModelProperty(value = "活动时间", example = "2021-06-06")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date activityTime;

    /**
     * 活动类型
     */
    @NotNull(message = "活动类型不能为空")
    @InEnum(value = ActivityTypeEnum.class, message = "活动类型必须是 {value}")
    @ApiModelProperty(value = "活动类型，1:十个一活动,2:应急演练,3:岗位练兵,4:技能比武,5:知识竞赛,6:安全活动")
    private Integer activityType;

    /**
     * 比武名次
     */
    @NotNull(message = "比武名次不能为空")
    @InEnum(value = ActivityRankingEnum.class, message = "比武名次必须是 {value}")
    @ApiModelProperty(value = "比武名次，1:公司第一名,2:公司第二名,3:公司第三名,4:通报表扬")
    private Integer ranking;
    /**
     * 备注
     */
    @Length(min = 0, max = 50, message = "备注内容长度为 0-50 位")
    @ApiModelProperty(value = "备注")
    private String remark;
    /**
     * 活动内容
     */
    @NotNull(message = "活动内容 不能为空")
    @Length(min = 0, max = 200, message = "活动内容长度为 0-200 位")
    @ApiModelProperty(value = "活动内容")
    private String content;

    /**
     * 活动参与角色
     */
    @NotNull(message = "活动参与角色不能为空")
    @InEnum(value = ParticipatingRoleEnum.class, message = "活动参与角色必须是 {value}")
    @ApiModelProperty(value = "活动参与角色，1:参与人员,2:观摩人员")
    private Integer participatingRole;

}
